/*
 * 创建日期 2007-5-16
 *
 * TODO 要更改此生成的文件的模板，请转至
 * 窗口 － 首选项 － Java － 代码样式 － 代码模板
 */
package com.vanda.db.dialect;

import java.util.HashMap;

import net.sf.hibernate.Session;
import net.sf.hibernate.dialect.Dialect;
import net.sf.hibernate.engine.SessionImplementor;

/**
 * @author eagle
 *
 * TODO 要更改此生成的类型注释的模板，请转至
 * 窗口 － 首选项 － Java － 代码样式 － 代码模板
 */
public class DialectFactory {
	
	static HashMap dialectMap = new HashMap();
	
	public static Dialect getDialect(Session session){
		Dialect dialect =
			((SessionImplementor) (session))
				.getFactory()
				.getDialect();
		
		//如果是db2方言，则转成系统改写的db2方言
		if(dialect instanceof net.sf.hibernate.dialect.DB2Dialect){
			String key = dialect.getClass().getName();
			dialect = (Dialect)dialectMap.get(key);
			
			if(dialect == null){
				dialect = new DB2Dialect();
				dialectMap.put(key,dialect);
			}
		}
		
		return dialect;
	}
}
